subroutine r2abij_t2aeij_fbe(r2, t2, fae, & 
               icore, fact)
!
use mod_size
use mod_ioff
use mod_orbit
use mod_iop 
implicit none
!
real*8, intent(in) :: fact
real*4, intent(in) :: r2(*) 
real*4, intent(in) :: fae(*)
!
real*4, intent(inout) :: t2(*), icore(*)
!
integer :: i, j, a, b, nsize
integer :: i0, i1, i2, i3
integer, external :: idsymsoc
real*8, external :: dnrm2, nrm2so
!this is to do r2(ab,ij) = r2(abij) + P(ab)t2(ae,ij)*f(be)
i0 = 1               
i1 = i0 + nvvoo*isd 
i2 = i1 + nvvoo*isd
i3 = i2 + nvvoo*isd
!
!ABAB===
! t2(Ae,Ij)*Fae(be) - t2(bE,Ij)*Fae(AE)
!=t2(Ae,Ij)*Fae(be) + t2(Eb,Ij)*Fae(AE)
call itranspso(t2(ioi3(2)), icore(i0), vrta, vrtb, 1, popa, popb, 1, 1) 
call VpqrmVsm_to_Vpqrs(icore(i0), fae(ifvv(1)), 1, 1, vrtb, & 
                 popa, popb, 1, vrta, vrtb, icore(i1), 1, 1.d0, 0.d0, 1) 
call iassymso(icore(i1), icore(i0), 1, popa, popa, vrta, vrta, 3)
!
call itranspso(icore(i0), icore(i1), popa, popb, 1, vrta, vrtb, 1, 1) 
call axpyso(nioi32, fact, icore(i1), 1, r2(ioi3(2)), 1) 
!
return
end
